iT邦幫忙

2022 iThome 鐵人賽

DAY 30
0
自我挑戰組

程式小白的 vue.js 學習筆記系列 第 30

Day 30 : 如何用Vue 監聽動態路由?

  • 分享至 

  • xImage
  •  

在談使用方法之前,我們可以先講一下為何我們需要監聽動態路由。

當我們使用動態路由匹配功能時,可能會在頁面中跳轉至其他也由動態路由生成的頁面,此時可能會發生「網址的 id 有變動但畫面沒有變動」的狀況。

個人判斷是因為 Vue 將此判定皆為同一個頁面所致。

因此我們需要監聽動態路由變動,來達成我們需要的跳轉效果。

開始監聽

我們首先可以先在 data 定義一個 pageId,並賦值為 $route.params.id

  data () {
    return {
      pageId: this.$route.params.id,
    }
  },

接著開始監聽路由變化,每當 $route 的值變動時,就將pageId重新賦值為to.params.id

($route 有 from 和 to 兩個參數,from 代表現在所在的頁面,to 代表要前往的頁面。)

接著傳出一個 $emit 重新刷新頁面

watch: {
    // 監聽動態路由變化
    $route (to) {
      this.pageId = to.params.id
      this.$emit('change-page')
    }
  },

這樣就完成啦~


上一篇
Day29 : 如何用Vue寫一個複製文字的功能?
系列文
程式小白的 vue.js 學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
前端小小咖
iT邦新手 4 級 ‧ 2022-10-15 21:54:37

恭喜完賽!

0
Tree
iT邦新手 3 級 ‧ 2022-10-15 22:48:14

恭喜完賽!/images/emoticon/emoticon12.gif

我要留言

立即登入留言